<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box{
            width: 1000px;
            height: 1000px;
            background-color: black;
            position: relative;
        }
        .ball{
            position: absolute;
            bottom: 0px;
            width: 10px;
            height: 10px;
            background-color: #fff;
        }
    </style>
</head>
<body>
    <div id="box">

    </div>
    
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
        // 构造函数
        function firw(){
            // 获取大盒子
            this.container = document.querySelector('#box')
            // 调用绑定事件
            this.bindEvent()
        }
        // 绑定事件
        firw.prototype.bindEvent = function(){
            // 记录实例对象指针this
            var self = this
            // 给大盒子添加点击事件
            self.container.onclick = function(e){

            // 事件对象兼容
            e = e || event
            // 定义一个变量接受创建的小盒子
            var firecreate = self.createWork()
            // 设置left值
            firecreate.style.left = e.offsetX + 'px'
            // 添加动画
            $(firecreate).animate({
                top:e.offsetY
            },800,function(){
                firecreate.remove()
            })
          }
        }

        // 创建小盒子事件
        firw.prototype.createWork = function(){
            // 创建一个小div
            var div = document.createElement('div')
            // 给小div添加class名
            div.className = 'ball'
            // 给小div设置随机背景颜色
            div.style.backgroundColor = '#' +  Math.round(parseInt('ffffff',16)*Math.random()).toString(16).padStart(6,'0')
            // 装进大盒子
            this.container.appendChild(div)
            // 返回值
            return div
        }


        // 调用
        var res = new firw()

    </script>
</body>
</html>